ACTOR Machete : Weapon
{
	+NOAUTOFIRE
	Weapon.SelectionOrder 6
	Inventory.PickupMessage "MACHETE"
	Weapon.Kickback 100
	Weapon.YAdjust 0
	+UNDROPPABLE
	+NOALERT
	+MELEEWEAPON
	Scale 0.5
	Weapon.BobStyle InverseSmooth
    Weapon.BobSpeed 2.1
    Weapon.BobRangeY 0.4
    Weapon.BobRangeX 0.7
	States
	{
	Ready:
		//KNFG A 0 A_JumpIfInventory("BlockingItem", 1, "Block")
		//KNF6 A 0 A_UnSetReflectiveInvulnerable
		//KNF6 A 0 A_UnSetInvulnerable
		KNF5 A 0 A_TakeInventory("MacheteAttack", 99)
		KNF6 A 0 A_JumpIfInventory("PowerInvulnerable",1,3)
		KNF6 A 0 A_UnSetReflectiveInvulnerable
		KNF6 A 0 A_UnSetInvulnerable
		KNF6 A 0 A_JumpIfInventory("IsWindSlashing",1,"WindSlashing")
		KNF6 A 0 A_JumpIfInventory("IsSpinningSlashing",1,"SpinningSlashing")
		KNFG A 1 A_WeaponReady
		Goto Ready
	Deselect:
		KNFX A 0 A_TakeInventory("MacheteAttack", 99)
		KNF6 A 0 A_JumpIfInventory("PowerInvulnerable",1,3)
		KNF6 A 0 A_UnSetReflectiveInvulnerable
		KNF6 A 0 A_UnSetInvulnerable
		KNFX A 1 A_Lower
		TNT1 A 0 A_lower
		Loop
	Select:
		KNFG A 1 A_Raise
		TNT1 A 0 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_JumpIfInventory("IsSkirmisher", 1, "FireP")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 7, "Attack7")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 6, "Attack6")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 5, "Attack5")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 4, "Attack4")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 3, "Attack3")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 2, "Attack2")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 1, "Attack1")

		KNFX ABCDZ 1
		KNFX AAA 0
		Attack1:
		KNFG B 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNFG C 1 
		KNFG DE 1
		KNFG F 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNFG GHI 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 2) //Attack 2
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("IsWindSlashing",1,"WindSlashing")
		TNT1 A 0 A_JumpIfInventory("IsSpinningSlashing",1,"SpinningSlashing")
		TNT1 A 0 A_Refire
		TNT1 AAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack2: //Left-angled Swipe
		TNT1 A 2
		KNF2 A 1
		KNF2 B 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF2 C 1 
		KNF2 DE 1
		KNF2 F 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF2 GH 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 3) //Attack 3
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("IsWindSlashing",1,"WindSlashing")
		TNT1 A 0 A_JumpIfInventory("IsSpinningSlashing",1,"SpinningSlashing")
		TNT1 A 0 A_Refire
		TNT1 AAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 4) //Attack 4
		TNT1 A 0 A_JumpIfInventory("IsWindSlashing",1,"WindSlashing")
		TNT1 A 0 A_JumpIfInventory("IsSpinningSlashing",1,"SpinningSlashing")
		TNT1 AAAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 6) //Attack 6
		TNT1 A 0 A_JumpIfInventory("IsWindSlashing",1,"WindSlashing")
		TNT1 A 0 A_JumpIfInventory("IsSpinningSlashing",1,"SpinningSlashing")
		TNT1 AAAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack3: //Overhand Chop (Finisher)
		TNT1 A 5
		KNF7 A 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF7 B 1
		KNF7 C 1 
		KNF7 D 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(50,70), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF7 EF 1
		KNF7 G 1
		TNT1 A 8 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_Refire
		Goto Ready

	Attack4: //Diagonal Swing - Right
		KNF4 A 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF4 B 1
		KNF4 C 1 
		KNF4 D 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF4 EF 1
		KNF4 G 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 5) //Attack 5
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("IsWindSlashing",1,"WindSlashing")
		TNT1 A 0 A_JumpIfInventory("IsSpinningSlashing",1,"SpinningSlashing")
		TNT1 A 0 A_Refire
		TNT1 AAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack5: //Diagonal Swing - Left
		KNF3 A 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF3 B 1
		KNF3 C 1 
		KNF3 D 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF3 EF 1
		KNF3 G 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 3) //Attack 3
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("IsWindSlashing",1,"WindSlashing")
		TNT1 A 0 A_JumpIfInventory("IsSpinningSlashing",1,"SpinningSlashing")
		TNT1 A 0 A_Refire
		TNT1 AAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack6: //Slice N' Dice
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("MacheteSkewerStage", 8, "StabFinish")

		TNT1 A 0 A_Jump(85,8)
		TNT1 A 0 A_Jump(128,13)

		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 C 1
		TNT1 A 0 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(10,20), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF6 B 1
		KNF6 C 1
		KNF6 E 1 A_WeaponReady
		Goto StabRest

		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 G 1
		TNT1 A 0 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(10,20), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF6 F 1
		KNF6 G 1
		KNF6 E 1 A_WeaponReady
		Goto StabRest

		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 I 1
		KNF6 H 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(10,20), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
	StabRest:
		KNF6 I 1 A_GiveInventory("MacheteSkewerStage", 1)
		KNF6 E 1
		TNT1 A 0 A_Refire
		TNT1 AAAAAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_TakeInventory("MacheteSkewerStage", 99)
		Goto Ready

	StabFinish: //Slice N' Dice (Finisher)
		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 D 1 
		KNF6 C 1
		KNF6 B 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(50,70), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF6 A 10 //A_Saw
		KNF6 BCDE 1
		TNT1 A 10 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_TakeInventory("MacheteSkewerStage", 99)
		TNT1 A 0 A_Refire
		Goto Ready

	Attack7: //Block Finisher
		KNF6 A 0 A_JumpIfInventory("PowerInvulnerable",1,3)
		KNF6 A 0 A_UnSetReflectiveInvulnerable
		KNF6 A 0 A_UnSetInvulnerable
		KNF6 A 1 A_PlaySound("HunterMacheteMiss")
		KNF6 A 1 
		KNF6 B 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(50,70), STRENGTH, ABIL_MELEEMASTERY, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 144)
		KNF6 CDE 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_TakeInventory("BlockingItem")
		TNT1 A 2
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_Refire
		TNT1 AAAAA 1 A_WeaponReady
		Goto Ready

	AltFire:
		KNF5 A 0 A_JumpIfInventory("PowerInvulnerable",1,2)
		KNF5 A 0 A_UnSetInvulnerable
		KNF5 A 0 A_PlayWeaponSound("HunterMacheteMiss")
		KNF5 B 1 A_GiveInventory("MacheteAttack", 7) //Altfire Finisher
		KNF5 CDE 1
		KNF5 G 0 A_JumpIfInventory("PowerInvulnerable",1,2)
		KNF5 G 0 A_SetInvulnerable
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_JumpIfInventory("PowerInvulnerable",1,2)
		KNF5 G 0 A_UnSetInvulnerable
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 G 0 A_SpawnItemEx("KnifeBlock",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF5 G 1 A_WeaponReady(WRF_NOSWITCH)
		KNF5 EDCB 1
		KNF5 A 1 A_TakeInventory("MacheteAttack", 99)
		KNF5 A 0 A_TakeInventory("BlockingItem")
		Goto Ready
		
	FireP:
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 7, "Attack7P")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 6, "Attack6P")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 5, "Attack5P")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 4, "Attack4P")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 3, "Attack3P")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 2, "Attack2P")
		TNT1 A 0 A_JumpIfInventory("MacheteAttack", 1, "Attack1P")

		KNFX ABCDZ 1
		KNFX AAA 0
	Attack1P:
		KNFG B 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNFG C 1 
		KNFG DE 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNFG F 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNFG F 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher1", FBF_NORANDOM, 128)
		KNFG F 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNFG GHI 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 2) //Attack 2
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_Refire
		TNT1 AAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack2P: //Left-angled Swipe
		TNT1 A 2
		KNF2 A 1
		KNF2 B 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF2 C 1 
		KNF2 DE 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF2 F 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF2 F 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher1", FBF_NORANDOM, 128)
		KNF2 F 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF2 GH 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 3) //Attack 3
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_Refire
		TNT1 AAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 4) //Attack 4
		TNT1 AAAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 6) //Attack 6
		TNT1 AAAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack3P: //Overhand Chop (Finisher)
		TNT1 A 5
		KNF7 A 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF7 B 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF7 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF7 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF7 D 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher2", FBF_NORANDOM, 128)
		KNF7 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF7 EF 1
		KNF7 G 1
		TNT1 A 8 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_Refire
		Goto Ready

	Attack4P: //Diagonal Swing - Right
		KNF4 A 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF4 B 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF4 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF7 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF4 D 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher1", FBF_NORANDOM, 128)
		KNF7 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF4 EF 1
		KNF4 G 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 5) //Attack 5
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_Refire
		TNT1 AAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack5P: //Diagonal Swing - Left
		KNF3 A 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF3 B 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF3 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF7 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF3 D 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher1", FBF_NORANDOM, 128)
		KNF7 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF3 EF 1
		KNF3 G 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_GiveInventory("MacheteAttack", 3) //Attack 3
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_Refire
		TNT1 AAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		Goto Ready

	Attack6P: //Slice N' Dice
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("MacheteSkewerStage", 8, "StabFinish")

		TNT1 A 0 A_Jump(85,8)
		TNT1 A 0 A_Jump(128,13)

		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM) 
		KNF6 B 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher3", FBF_NORANDOM, 128)
		KNF6 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM) 
		KNF6 E 1 A_WeaponReady
		Goto StabRest

		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 G 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 F 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher3", FBF_NORANDOM, 128)
		KNF6 G 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM) 
		KNF6 E 1 A_WeaponReady
		Goto StabRest

		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 I 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 H 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 H 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher3", FBF_NORANDOM, 128)
		KNF6 H 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
	StabRestP:
		KNF6 I 1 A_GiveInventory("MacheteSkewerStage", 1)
		KNF6 E 1
		TNT1 A 0 A_Refire
		TNT1 AAAAAAAAAA 1 A_WeaponReady
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_TakeInventory("MacheteSkewerStage", 99)
		Goto Ready

	StabFinishP: //Slice N' Dice (Finisher)
		KNF6 E 1 A_PlayWeaponSound("HunterMacheteMiss")
		KNF6 D 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 B 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 B 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher2", FBF_NORANDOM, 128)
		KNF6 A 10 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 BCDE 1
		TNT1 A 10 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_TakeInventory("MacheteSkewerStage", 99)
		TNT1 A 0 A_Refire
		Goto Ready

	Attack7P: //Block Finisher
		KNF6 A 0 A_JumpIfInventory("PowerInvulnerable",1,3)
		KNF6 A 0 A_UnSetReflectiveInvulnerable
		KNF6 A 0 A_UnSetInvulnerable
		KNF6 A 0 A_PlaySound("HunterMacheteMiss")
		KNF6 AA 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 B 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 B 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher2", FBF_NORANDOM, 144)
		KNF6 B 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF6 CDE 1
		TNT1 A 0 A_TakeInventory("MacheteAttack", 99)
		TNT1 A 0 A_TakeInventory("BlockingItem")
		TNT1 A 2
		TNT1 AAA 1 A_WeaponReady
		TNT1 A 0 A_Refire
		TNT1 AAAAA 1 A_WeaponReady
		Goto Ready
		
	WindSlashing:
		KNF4 A 0 A_JumpIfInventory("IsSkirmisher",1,"WindSlashingP")
		KNF4 A 1 A_PlayWeaponSound("HunterMacheteAirSlash")
		KNF4 B 1
		KNF4 C 1  
		KNF4 C 0 A_FireCustomMissile("MacheteSlash",0,0)
		KNF4 D 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_WINDSLASH, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF4 EF 1
		KNF4 G 1
		TNT1 AAAAA 1
		KNF3 A 1 A_PlayWeaponSound("HunterMacheteAirSlash")
		KNF3 B 1
		KNF3 C 1 
		KNF3 C 0 A_FireCustomMissile("MacheteSlash",0,0)
		KNF3 D 1 A_FireBullets(0,0,1,ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_WINDSLASH, ACTIVATOR), "MachetePuff", FBF_NORANDOM, 128)
		KNF3 EF 1
		KNF3 G 1
		TNT1 AAAAA 1
		TNT1 A 0 A_TakeInventory("IsWindSlashing",1)
		Goto Ready
	WindSlashingP:
		KNF4 A 1 A_PlayWeaponSound("HunterMacheteAirSlash")
		KNF4 B 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF4 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF4 C 0 A_FireCustomMissile("MacheteSlashP",0,0)
		KNF4 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF4 D 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher1", FBF_NORANDOM, 128)
		KNF4 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF4 EF 1
		KNF4 G 1
		TNT1 AAAAA 1
		KNF3 A 1 A_PlayWeaponSound("HunterMacheteAirSlash")
		KNF3 B 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF3 C 1 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM) 
		KNF3 C 0 A_FireCustomMissile("MacheteSlashP",0,0)
		KNF3 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF3 D 1 A_FireBullets(0,0,1,0,"MachetePuffSkirmisher1", FBF_NORANDOM, 128)
		KNF3 D 0 A_SpawnItemEx("KnifeBlockFar",16,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		KNF3 EF 1
		KNF3 G 1
		TNT1 AAAAA 1
		TNT1 A 0 A_TakeInventory("IsWindSlashing",1)
		Goto Ready
	SpinningSlashing:
		TNT1 A 0 A_JumpIfInventory("IsSkirmisher",1,"SpinningSlashingP")
		TNT1 AAA 1
		KNF7 A 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 A 1 A_PlayWeaponSound("HunterMacheteAirSlash")
		KNF7 B 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 B 1
		KNF7 C 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 C 1
		KNF7 D 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 D 0 A_PlayWeaponSound("HunterMacheteHitThing")
		KNF7 D 1 A_SpawnItemEx("SpinningSlashEffects",0,0,0,0,0,0,0,0)
		KNF7 E 1
		KNF7 F 1
		KNF7 G 1
		TNT1 A 8
		TNT1 A 0 A_TakeInventory("IsSpinningSlashing", 1)
		Goto Ready
	SpinningSlashingP:
		TNT1 AAA 1
		KNF7 A 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 A 1 A_PlayWeaponSound("HunterMacheteAirSlash")
		KNF7 B 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 B 1
		KNF7 C 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 C 1
		KNF7 D 0 A_SetAngle(angle + 90, SPF_INTERPOLATE)
		KNF7 D 0 A_PlayWeaponSound("HunterMacheteHitThing")
		KNF7 D 1 A_SpawnItemEx("SpinningSlashEffectsP",0,0,0,0,0,0,0,0)
		KNF7 E 1
		KNF7 F 1
		KNF7 G 1
		TNT1 A 8
		TNT1 A 0 A_TakeInventory("IsSpinningSlashing", 1)
		Goto Ready
	}
}

ACTOR BlockingItem : Inventory
{
	Inventory.MaxAmount 1
}

Actor SpinningSlashEffects
{
	Speed 0
	Radius 8
	Height 4
	Alpha 0.6
	PROJECTILE
	+RIPPER
	+BLOODLESSIMPACT
	+FORCEPAIN
	+DONTBLAST
	+FORCERADIUSDMG
	ReactionTime 5
	Damagetype "Physical"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 128, STRENGTH, ABIL_SPINNINGSLASH, WOCTARGET),128,0,0,128)
		Stop
	Death:
		TNT1 S 1
		Stop
	}
}

Actor SpinningSlashEffectsP : SpinningSlashEffects
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 128, STRENGTH, ABIL_SPINNINGSLASH, WOCTARGET),192,0,0,192)
		Stop
	Death:
		TNT1 S 1
		Stop
	}
}

ACTOR KnifeBlock
{
	Health 5
	height 56
	radius 16
	Speed  0
	+NOBLOOD
	+NOGRAVITY
	+NODAMAGE
	Species "Player"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 //A_Warp(AAPTR_TARGET, 0, 0, 32)
		TNT1 A 0 A_SpawnItemEx("KnifeBlockRange",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 0 A_SpawnItemEx("KnifeBlockRange",32,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 0
		Stop
	Death: 
		TNT1 A 1
		Stop
	}
}

ACTOR KnifeBlockFar
{
	Health 5
	height 56
	radius 16
	Speed  0
	+NOBLOOD
	+NOGRAVITY
	+NODAMAGE
	Species "Player"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("KnifeBlockRange",32,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 0 A_SpawnItemEx("KnifeBlockRange",64,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 0 A_SpawnItemEx("KnifeBlockRange",96,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 0 A_SpawnItemEx("KnifeBlockRange",112,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
		TNT1 A 2
		Stop
	Death: 
		TNT1 A 1
		Stop
	}
}

ACTOR KnifeBlockRange
{
	Health 5
	height 56
	radius 16
	Speed  0
	+NOBLOOD
	+SHOOTABLE
	+NOGRAVITY
	+NODAMAGE
	Species "Player"
	States
	{
	Spawn: 
		TNT1 A 2
		Stop
	Death: 
		TNT1 A 1
		Stop
	}
}

ACTOR MacheteAttack : Inventory
{
	Inventory.MaxAmount 99
}

ACTOR MacheteSkewerStage : Inventory
{
	Inventory.MaxAmount 99
}

Actor MachetePuff : BulletPuff
{
	+PUFFONACTORS
	+PUFFGETSOWNER
	+THRUGHOST
	+MTHRUSPECIES
	Damagetype "Physical"
	AttackSound "HunterMacheteHitWall"
	SeeSound "HunterMacheteHitThing"
	States
	{
	Spawn:
		PUFH A 0
		PUFH A 1 A_AlertMonsters(128)
		PUFH C 0 A_GiveToTarget("InvigorationChecker")
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	Crash:
		PUFH A 1
		PUFH A 0 //A_AlertMonsters(128)
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	Melee:
		PUFH C 0
		PUFH C 0 A_StopSound
		PUFH C 1 A_AlertMonsters(128)
		PUFH C 0 A_GiveToTarget("InvigorationChecker")
		PUFH C 1 A_GiveToTarget("ScreenPitch1")
		PUFH CC 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH D 4
		Stop
	}
}

Actor MachetePuffSkirmisher1 : MachetePuff 
{
	States
	{
	Spawn:
		PUFH A 0
		PUFH A 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_MELEEMASTERY, WOCTARGET),64,0,0,64)
		PUFH A 1 A_AlertMonsters(128)
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	Melee:
		PUFH C 0
		PUFH C 0 A_StopSound
		PUFH C 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(20,40), STRENGTH, ABIL_MELEEMASTERY, WOCTARGET),64,0,0,64)
		PUFH C 1 A_AlertMonsters(128)
		PUFH C 1 A_GiveToTarget("ScreenPitch1")
		PUFH CC 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH D 4
		Stop
	Crash:
		PUFH A 1
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	}
}

Actor MachetePuffSkirmisher2 : MachetePuff 
{
	States
	{
	Spawn:
		PUFH A 0
		PUFH A 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(50,70), STRENGTH, ABIL_MELEEMASTERY, WOCTARGET),64,0,0,64)
		PUFH A 1 A_AlertMonsters(128)
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	Melee:
		PUFH C 0
		PUFH C 0 A_StopSound
		PUFH C 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(50,70), STRENGTH, ABIL_MELEEMASTERY, WOCTARGET),64,0,0,64)
		PUFH C 1 A_AlertMonsters(128)
		PUFH C 1 A_GiveToTarget("ScreenPitch1")
		PUFH CC 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH D 4
		Stop
	Crash:
		PUFH A 1
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	}
}

Actor MachetePuffSkirmisher3 : MachetePuff 
{
	States
	{
	Spawn:
		PUFH A 0
		PUFH A 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(10,20), STRENGTH, ABIL_MELEEMASTERY, WOCTARGET),64,0,0,64)
		PUFH A 1 A_AlertMonsters(128)
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	Melee:
		PUFH C 0
		PUFH C 0 A_StopSound
		PUFH C 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(10,20), STRENGTH, ABIL_MELEEMASTERY, WOCTARGET),64,0,0,64)
		PUFH C 1 A_AlertMonsters(128)
		PUFH C 1 A_GiveToTarget("ScreenPitch1")
		PUFH CC 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH D 4
		Stop
	Crash:
		PUFH A 1
		PUFH A 1 A_GiveToTarget("ScreenPitch1")
		PUFH AA 1 A_GiveToTarget("ScreenPitchHalfBack")
		PUFH B 4
		PUFH CD 4
		Stop
	}
}

ACTOR MacheteSlash : FastProjectile	// base slash
{
	Radius 8
	Height 6
	Damage 0//(ACS_NamedExecuteWithResult("WOC Player Scale", 1, STRENGTH, ABIL_WINDSLASH, WOCTARGET))
	DamageType "Physical"
	Speed 35
	MissileType "MacheteSlashTrail"
	MissileHeight 8
	RenderStyle Add
	Alpha 0.5
	YScale 0.5
	PROJECTILE
	+DONTSPLASH
	+BLOODLESSIMPACT
	+RIPPER
	+MTHRUSPECIES
	+NODAMAGETHRUST
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAAAAAAA 1 BRIGHT A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 15, STRENGTH, ABIL_WINDSLASH, WOCTARGET),30,0,0,30)
		Stop
	}
}

Actor MacheteSlashP : MacheteSlash
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAAAAAAAAAAAA 1 BRIGHT A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 15, STRENGTH, ABIL_WINDSLASH, WOCTARGET),45,0,0,45)
		Stop
	}
}

ACTOR MacheteSlashTrail
{
	Radius 0
	Height 1
	Damage 0
	Speed 0
	Scale 0.5
	PROJECTILE
	+NOINTERACTION
	+CLIENTSIDEONLY
	RenderStyle Add
	Alpha 0.5
	YScale 0.5
	States
	{
	Spawn:
		TNT1 A 0
		WSLS B 1 BRIGHT A_FadeOut(0.1)
		Goto Spawn+1 
	}
}

Actor InvigorationChecker : Custominventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
		Use:
			TNT1 A 0 A_JumpIfInventory("Invigoration", random(1,30), "PickBuff")
			Stop
		PickBuff:
			TNT1 A 0 A_GiveInventory("InvigRegenStart")
			Stop
	}
}

Actor InvigDamage : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type InvigDamage
}

Actor PowerInvigDamage : PowerDamage
{
	Damagefactor "Normal", 1.2
	Powerup.Duration -10
	Inventory.Icon "IVIGICON"
}

Actor InvigRegenStart : Custominventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
	Use:
		TNT1 A 0 ACS_ExecuteAlways(WOC_INVIGHEAL)
		Stop
	}
}